package com.example.supplychainbackend.service;

import com.example.supplychainbackend.controller.dto.blockchain.UploadInfo;
import com.example.supplychainbackend.controller.dto.design.BOMDto;
import com.example.supplychainbackend.controller.dto.design.ECNDto;
import com.example.supplychainbackend.controller.dto.user.UserSigDto;

import java.util.List;

public interface DesignService {
    BOMDto getBOM(String lineNumber);
    BOMDto getBOMByCode(String materialCode);

    BOMDto updateBOM(String materialCode, BOMDto form);

    String createBOM(BOMDto form);

    List<BOMDto> getBOMsByOrder(String oid);
    List<BOMDto> getAllBOMs();

    Long deleteBOM(String materialCode, UserSigDto userSigDto);


    ECNDto getECN(String ecnNumber);

    ECNDto updateECN(String ecnNumber, ECNDto form);

    String createECN(ECNDto form);

    List<ECNDto> getAllECNs();

    List<ECNDto> getAllECNsByEid(String eid);

    Long deleteECN(String ecnNumber);

    UploadInfo uploadToChainBOM(String id);

    UploadInfo uploadToChainECN(String id);

    void uploadToChainBOMsByOrder(String id);

    void createBOMnoECN(BOMDto parentBom);
}
